<!DOCTYPE html>
<html lang="cn">
<head>
    <meta charset="UTF-8">
    <title>JS 内置对象 - String</title>
</head>
<body>
    <h1>JS 内置对象 - String</h1>
    <hr>

    <script>
        var str = new String('奥斯卡积分噶水井坊');
        var str = String(true);
        var str = 'I am jingjing, I love you, duo you zao?上海!';

        console.log(str);
        console.log(typeof str);
        console.log(str.constructor);

        document.write('STR的长度:' + str.length + '<br>');
        document.write( str + '<br>');


        // 加粗
        document.write('加粗:' + str.bold() + '<br>');

        // 锚点
        document.write('加粗:' + str.anchor('p1') + '<br>');
        // charAt
        document.write('charAt' + str.charAt(2) + '<br>'); // 表示 字符串下标为2对应的值
        document.write('类数组语法' + str.charAt(2) + '<br>');
        document.write('<hr>');
        // indexOf 返回第一次出现指定字符串的位置,未找到 返回值 -1;
        document.write('indexOf' + str.indexOf('m') + '<br>');
        document.write('indexOf' + str.indexOf('asd') + '<br>');
        // lastIndexOf 返回最后一次出现指定字符串的位置 ,未找到 用 -1;
        document.write('indexOf' + str.lastIndexOf('you') + '<br>');
        document.write('indexOf' + str.lastIndexOf('asd') + '<br>');
        document.write('<hr>');


        //  substr 截取字符串,无指长度则,截取到尾部为止;
        document.write('substr' + str.substr(2,10) + '<br>');
        document.write('substr' + str.substr(3,) + '<br>');
        document.write('substr' + str.substr(-3,-5) + '<br>');
        
        // substring 截取star->end 字符串 ,不包含 end; 不能负数
        document.write('substring:' + str.substring(22) + '<br>');
        document.write('substring:' + str.substring(3, 6) + '<br>');
        document.write('substring:' + str.substring(-3, -1) + '<br>');

        // slice 截取 star->end 字符串 ,不包含 end 可以为负数;
        document.write('slice:' + str.slice(22) + '<br>');
        document.write('slice:' + str.slice(3, 6) + '<br>');
        document.write('slice:' + str.slice(-3, -1) + '<br>');      


        // 转大写 toUpperCase
        document.write('转大写' + str.toUpperCase() + '<br>');
        // 转大写 toLowerCase
        document.write('转小写' + str.toLowerCase() + '<br>');


        // 以下方法都支持正则
        // replace()字符替换
        document.write('replace:'+ str.replace(/\w/g,'yy') + '<br>' ); // g 表示 全局匹配;

        // match() 匹配第一个匹配到的结果 , 不匹配 返回 null;
        document.write('match:' + str.match('a') + '<br>');
        document.write('match:' + str.match('k') + '<br>');
        document.write('match:' + str.match(/\w{8}/) + '<br>');
        document.write('match:' + str.match(/\w{88}/) + '<br>');

        // search 正则验证,匹配第一次出现的位置,不匹配 则返回-1 
        document.write('search:' + str.search('am') + '<br>');
        document.write('search:' + str.search(/\w{8}/) + '<br>');
        document.write('search:' + str.search(/\w{88}/) + '<br>');       
 
        // split 把字符串分割为数组(字符串数组)
        console.log(str.split());
        console.log(str.split(','));
        console.log(str.split(''));
        console.log(str.split(/[, ?]/));

    
    </script>

</body>
</html>